#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Digit
{
    short int d;
    struct Digit* next;
} Digit;

typedef struct MyFloat
{
    struct Digit* next;
    int len;
    int pos;
} MyFloat;


void showdigit(Digit* p, int pos, int k)
{
    if(p == NULL)
    {
        return;
    }
    showdigit(p->next, pos, k+1);
    printf("%d", p->d);
    if(pos != 0 && pos == k)
    {
        printf(".");
    }
}

void showmyfloat(MyFloat* myfloat)
{
    int i = 0;

    if(myfloat->pos >= myfloat->len)
    {
        printf(".");
        for(i = 0; i < myfloat->pos - myfloat->len; i++)
        {
            printf("0");
        }
    }

    showdigit(myfloat->next, myfloat->pos, 0);

    printf("\n");
}

void freemyfloat(MyFloat** myfloat)
{
    Digit *p = NULL, *pre = NULL;

    for(p = (*myfloat)->next; p != NULL; pre = p, p = p->next)
    {
        free(pre);
    }

    free(*myfloat);
    *myfloat = NULL;
}

void createmyfloat(MyFloat** myfloat, int val, int pos)
{
    int c = 0, r = val;
    Digit *p = NULL, *pre = NULL;
    (*myfloat) = (MyFloat*)malloc(sizeof(MyFloat));
    (*myfloat)->len = 0;
    (*myfloat)->pos = pos;
    (*myfloat)->next = NULL;

    do
    {
        c = r % 10;
        p = (Digit*)malloc(sizeof(Digit));
        p->d = c;
        p->next = NULL;

        if((*myfloat)->next == NULL)
        {
            (*myfloat)->next = p;
        }
        else
        {
            pre->next = p;
        }
        pre = p;

        (*myfloat)->len++;

        r = (r-c)/10;
    }
    while(r != 0);
}

void getval(char rstr[7], int* val, int* pos)
{
    int i = 0;
    int r = 0;
    for(i = 0; i < strlen(rstr); i++)
    {

        if(rstr[i] != '.')
        {
            r *= 10;
            r += (rstr[i] - '0');
        }
        if(rstr[i] == '.')
        {
            *pos = strlen(rstr) - i - 1;
        }
    }
    *val = r;
}


void multiply(MyFloat* myfloat, int val, int pos)
{
    int c = 0;
    int k = 1;
    Digit *op = myfloat->next, *pre = myfloat->next;

    while(op != NULL)
    {
        k = op->d * val;
        op->d = (k + c) % 10;
        c = (k + c - op->d) / 10;

        pre = op;
        op = op->next;
    }

    while(c != 0)
    {
        op = (Digit*)malloc(sizeof(Digit));
        op->d = c % 10;
        op->next = NULL;
        pre->next = op;
        pre = op;
        c = (c - op->d) / 10;
        myfloat->len++;
    }
    myfloat->pos += pos;
}

void trail0(MyFloat* myfloat)
{
    Digit *op = NULL;

    if(myfloat->len == 1 || myfloat->pos == 0 || myfloat == NULL)
    {
        return;
    }

    while((op = myfloat->next) != NULL)
    {
        if(op->d != 0 || myfloat->pos == 0)
        {
            break;
        }
        else
        {
            myfloat->next = op->next;
            free(op);
            myfloat->len--;
            myfloat->pos--;
        }
    }
}

void strprocess(char rstr[7], int* val, int* pos)
{
    int i = 0;
    while(1)
    {
        if(rstr[0] != '0' || rstr[0] == '.')
        {
            break;
        }
        for(i = 1; i <= strlen(rstr); i++)
        {
            rstr[i-1] = rstr[i];
        }
    }

    getval(rstr, val, pos);

    if(strlen(rstr) == 0 || *val == 0)
    {
        strcpy(rstr, "0");
        *pos = 0;
    }
}

void process(char rstr[7], int n)
{
    int i = 0;
    int val = 0, pos = 0;
    MyFloat* myfloat = NULL;

 //   printf("%s\t, n:%d:\r\n", rstr, n);

    strprocess(rstr, &val, &pos);

    createmyfloat(&myfloat, val, pos);

    trail0(myfloat);


    for(i = 0; i < n-1; i++)
    {
        multiply(myfloat, val, pos);

    }
    trail0(myfloat);
    showmyfloat(myfloat);

    freemyfloat(&myfloat);
}

void getinput()
{
    char    rstr[7];
    int     n = 0;

    while(scanf("%s %d", rstr, &n) != EOF)
    {
        process(rstr, n);
    }
}

int main()
{
    //freopen("bin\\debug\\in.txt", "r", stdin);
    //freopen("bin\\debug\\out.txt", "w", stdout);
    getinput();

    fclose(stdin);
    return 0;
}
